package com.sg.dto.biz.component.common;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;


/**
 * @desc MemberMsgReceiveDto
 * @使用场景
 */
@Data
public class MemberMsgReceiveDto extends BaseDto implements Serializable {

    /**
     * 成员接收消息ID
     */
    @ApiModelProperty("成员接收消息ID")
    private String memberMessageId;

    /**
     * 接受的消息ID
     */
    @ApiModelProperty("接受的消息ID")
    private String messageId;

    /**
     * 消息数量ID
     */
    @ApiModelProperty("消息数量ID")
    private String messageLocationRemindId;

    /**
     * 消息内容
     */
    @ApiModelProperty("消息内容")
    private String messageContent;

    /**
     * 消息访问链接
     */
    @ApiModelProperty("消息访问链接")
    private String messageContentUrl;

    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 是否已读 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已读")
    private String isRead;

    /**
     * 已读时间
     */
    @ApiModelProperty("已读时间")
    private Date readTime;
    /**
     * 发送方姓名
     */
    @ApiModelProperty("发送方姓名")
    private String nameOfSender;

    /**
     * 发送方头像地址
     */
    @ApiModelProperty("发送方头像地址")
    private String senderProfilePictureAddress;
    /**
     * 消息归属角色 SYSTEM:第三方系统 USER:用户 ASSISTANT:助手
     */
    @ApiModelProperty("消息归属角色")
    private String messageRole;

    /**
     * 身份人员ID
     */
    @ApiModelProperty("身份人员ID")
    private String originalRoleMemberId;

    /**
     * 账号
     */
    @ApiModelProperty("账号")
    private String userId;

    /**
     * 发送方身份人员ID
     */
    @ApiModelProperty("发送方身份人员ID")
    private String senderOriginalRoleMemberId;

    /**
     * 发送方账号ID
     */
    @ApiModelProperty("发送方账号ID")
    private String senderUserId;
    /**
     * 发送方是否助手 TRUE:是 FALSE:否
     */
    @ApiModelProperty("发送方是否助手")
    private String isAssistant;
    /**
     * 行为类型编码
     */
    @ApiModelProperty("行为类型编码")
    private String behaviorTypeCode;
    /**
     * 消息重要紧急度层级
     */
    @ApiModelProperty("消息重要紧急度层级")
    private Long messageImportantLevel;
    /**
     * 消息标题
     */
    @ApiModelProperty("消息标题")
    private String messageTitle;

    /**
     * 是否展示消息发送时间 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否展示消息发送时间")
    private String isShowSendTime;

    /**
     * 成员通道关系ID
     */
    @ApiModelProperty("成员通道关系ID")
    private String memberChannelRelationId;

    /**
     * 虚拟形象ID
     */
    @ApiModelProperty("虚拟形象ID")
    private String virtualImageId;

    /**
     * 虚拟形象名称
     */
    @ApiModelProperty("虚拟形象名称")
    private String virtualImageName;

    /**
     * 虚拟形象图片
     */
    @ApiModelProperty("虚拟形象图片")
    private String virtualImage;

    /**
     * 虚拟形象简介
     */
    @ApiModelProperty("虚拟形象简介")
    private String virtualImageDesc;

    /**
     * 人物经典语句
     */
    @ApiModelProperty("人物经典语句")
    private String characterClassicPhrase;

    /**
     * 是否自定义形象 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否自定义形象")
    private String isCustomImage;
    /**
     * 协同内容类型编码 ORG_OR_DEPT:组织或部门 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表 OMS_MESSAGE_CHANNEL:通道表 OMS_ORG_ORGANIZATION:组织表 OMS_PROJECT:项目表 OMS_ORG_DEPT:部门表 OMS_QUESTION:问题表 OMS_OFFICIAL_DOCUMENT:公文表
     */
    @ApiModelProperty("协同内容类型编码")
    private String cooperateContentTypeCode;

    /**
     * 协同内容ID
     */
    @ApiModelProperty("协同内容ID")
    private String cooperateContentId;

    /**
     * 媒介类型 VIDEO:视频 AUDIO:音频 FILE:文件 PIC:图片
     */
    @ApiModelProperty("媒介类型")
    private String mediaType;

    /**
     * 媒介地址
     */
    @ApiModelProperty("媒介地址")
    private String mediaAddress;
    /**
     * 协同内容名称
     */
    @ApiModelProperty("协同内容名称")
    private String surfaceContName;
    /**
     * 消息使用通道类别 INTELLIGENT_STUDY:智能学习 INTELLIGENT_CUSTOMER_SERVICE:智能客服 NOTIFICATION_ANNOUNCEMENT:通知公告 CONTENT_COMMUNICATION:内容沟通 WORK_CIRCLE:工作圈 IDEA:想法 ADDRESS_BOOK:通讯录
     */
    @ApiModelProperty("消息使用通道类别")
    private String msgChannelClassCode;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        MemberMsgReceiveDto that = (MemberMsgReceiveDto) o;
        return memberMessageId == that.memberMessageId && messageId == that.messageId && messageLocationRemindId == that.messageLocationRemindId && messageContent == that.messageContent && messageContentUrl == that.messageContentUrl && operateTime == that.operateTime && isRead == that.isRead && readTime == that.readTime && nameOfSender == that.nameOfSender && senderProfilePictureAddress == that.senderProfilePictureAddress && messageRole == that.messageRole && originalRoleMemberId == that.originalRoleMemberId && userId == that.userId && senderOriginalRoleMemberId == that.senderOriginalRoleMemberId && senderUserId == that.senderUserId && isAssistant == that.isAssistant && behaviorTypeCode == that.behaviorTypeCode && messageImportantLevel == that.messageImportantLevel && messageTitle == that.messageTitle && isShowSendTime == that.isShowSendTime && memberChannelRelationId == that.memberChannelRelationId && virtualImageId == that.virtualImageId && virtualImageName == that.virtualImageName && virtualImage == that.virtualImage && virtualImageDesc == that.virtualImageDesc && characterClassicPhrase == that.characterClassicPhrase && isCustomImage == that.isCustomImage && cooperateContentTypeCode == that.cooperateContentTypeCode && cooperateContentId == that.cooperateContentId && mediaType == that.mediaType && mediaAddress == that.mediaAddress && surfaceContName == that.surfaceContName && msgChannelClassCode == that.msgChannelClassCode;
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), memberMessageId, messageId, messageLocationRemindId, messageContent, messageContentUrl, operateTime, isRead, readTime, nameOfSender, senderProfilePictureAddress, messageRole, originalRoleMemberId, userId, senderOriginalRoleMemberId, senderUserId, isAssistant, behaviorTypeCode, messageImportantLevel, messageTitle, isShowSendTime, memberChannelRelationId, virtualImageId, virtualImageName, virtualImage, virtualImageDesc, characterClassicPhrase, isCustomImage, cooperateContentTypeCode, cooperateContentId, mediaType, mediaAddress, surfaceContName, msgChannelClassCode);
    }


}
   